package com.arturjaneczko.services.impl.state;

import com.arturjaneczko.services.core.state.IClipboardMode;

public class OperatingClipboardMode {

	private IClipboardMode clipboardMode;
	private FifoClipboardMode fifoClipboardMode;
	private GrowthClipboardMode growthClipboardMode;
	private LifoClipboardMode lifoClipboardMode;
	private MultiClipboardMode multiClipboardMode;
	private OffClipboardMode offClipboardMode;
	private StdClipboardMode stdClipboardMode;

	public OperatingClipboardMode() {
		this.fifoClipboardMode = new FifoClipboardMode(this);
		this.growthClipboardMode = new GrowthClipboardMode(this);
		this.lifoClipboardMode = new LifoClipboardMode(this);
		this.multiClipboardMode = new MultiClipboardMode(this);
		this.offClipboardMode = new OffClipboardMode(this);
		this.stdClipboardMode = new StdClipboardMode(this);
		this.clipboardMode = multiClipboardMode;
	}

	public IClipboardMode getClipboardMode() {
		return clipboardMode;
	}

	public FifoClipboardMode getFifoClipboardMode() {
		return fifoClipboardMode;
	}

	public GrowthClipboardMode getGrowthClipboardMode() {
		return growthClipboardMode;
	}

	public LifoClipboardMode getLifoClipboardMode() {
		return lifoClipboardMode;
	}

	public MultiClipboardMode getMultiClipboardMode() {
		return multiClipboardMode;
	}

	public OffClipboardMode getOffClipboardMode() {
		return offClipboardMode;
	}

	public StdClipboardMode getStdClipboardMode() {
		return stdClipboardMode;
	}

	public void setClipboardMode(IClipboardMode clipboardMode) {
		System.out.println("mode: "+clipboardMode.getClass().getSimpleName());
		this.clipboardMode = clipboardMode;
	}

}
